A Proof of Strong Normalization for Call-by-push-value
نویسندگان
چکیده
The call-by-push-value (CBPV) calculus is a general framework within which one can study computational effects such as state, nondeterminism, and input/output. Compared to the simply typed lambda calculus, the CBPV type system is much more finegrained and distinguishes between value and computation types. We give a self-contained proof of strong normalization for CBPV, employing a notion of >>-closure to adapt the Girard-Tait method to CBPV computation types.
منابع مشابه
Uniform Strong Normalization for Multi-Discipline Calculi
Modern programming languages have effects and mix multiple calling conventions, and their core calculi should too. We characterize calling conventions by their “substitution discipline” that says what variables stand for, and design calculi for mixing disciplines in a single program. Building on variations of the reducibility candidates method, including biorthogonality and symmetric candidates...
متن کاملStrong Normalization of λμμ̃-Calculus with Explicit Substitutions
The λμμ̃-calculus, defined by Curien and Herbelin [7], is a variant of the λμ-calculus that exhibits symmetries such as term/context and call-by-name/call-by-value. Since it is a symmetric, and hence a non-deterministic calculus, usual proof techniques of normalization needs some adjustments to be made to work in this setting. Here we prove the strong normalization (SN) of simply typed λμμ̃-calcu...
متن کاملStrong normalization proofs by CPS-translations
In this paper, we propose a new proof method for strong normalization of calculi with control operators, and, by this method, we prove strong normalization of the system λμ→∧∨⊥ , which is introduced in [3] by de Groote and corresponds to the classical natural deduction with disjunctions and permutative conversions by the Curry-Howard isomorphism. For our method, we introduce a new CPS-translati...
متن کاملCall-by-Value and Call-by-Name Dual Calculi with Inductive and Coinductive Types
This paper extends the dual calculus with inductive types and coinductive types. The paper first introduces a non-deterministic dual calculus with inductive and coinductive types. Besides the same duality of the original dual calculus, it has the duality of inductive and coinductive types, that is, the duality of terms and coterms for inductive and coinductive types, and the duality of their re...
متن کاملAdjunction Models For Call-By-Push-Value With Stacks
Call-by-push-value is a ”semantic machine code”, providing a set of simple primitives from which both the call-by-value and call-by-name paradigms are built. We present its operational semantics as a stack machine, suggesting a term judgement of stacks. We then see that CBPV, incorporating these stack terms, has a simple categorical semantics based on an adjunction between values and stacks. Th...
متن کامل